# 导包
import json
import logging

from api.base_service import BaseService


class OrderSettingServiceApi(BaseService):

    def __init__(self):
        # 从父辈继承它的实例属性
        super().__init__()
        # 创建自己的实例属性
        self.service_name = "OrderSettingService"
        self.func_add = "add"
        self.func_name_ordersetting = "editNumberByDate"

    def add(self, list1):
        # 通过invoke函数来访问接口-服务名、函数名、参数
        res = self.dubboclt.invoke(self.service_name, self.func_add, list1)

        # 打印响应结果
        logging.info(f"响应结果的类型==={type(res)}")
        logging.info(f"响应结果==={res}")

        return res

    def edit_number_by_date(self, ordersetting):

        # 需要额外添加一个class键值对
        ordersetting["class"] = "com.itheima.pojo.OrderSetting"
        # 通过invoke函数来访问接口-服务名、函数名、参数
        res = self.dubboclt.invoke(self.service_name, self.func_name_ordersetting, ordersetting)

        # 打印响应结果
        logging.info(f"响应结果的类型==={type(res)}")
        logging.info(f"响应结果==={res}")

        # json.loads()的作用是还原一个字符串为它原本的类型，
        # 如果原本的类型为字典，则还原为字典；如果为列表或者元组，则还原为列表或者元组;如果为null，则返回None

        res_after = json.loads(res)
        logging.info(f"转换后的响应结果类型==={type(res_after)}")
        logging.info(f"转换后的响应结果==={res_after}")

        # 如果返回No说明失败
        if res == "No":
            return False
        else:
            return True
